package com.elong.businesstravel.entitys;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 酒店价格，还有后续提交操作所需要的数据
 * 
 * @author lenovo
 * 
 */
public class HotelPrice implements Serializable{

	public static class RoomInfo  implements Serializable{

		public String RoomName;
		public String RoomId;
		public String image;
		public RoomDesction desction;
		public String desctionString;
		public List<RatePlanInfo> RatePlans = new ArrayList<RatePlanInfo>();
	}

	public static class RoomDesction  implements Serializable{
		public String bedtype;
		public String description;
		public String roomarea;
		public String roomfloor;
		public String broadnetfee;
		public String broadnetaccess;
		public String comments;
	}

	// 预订规则
	public static class BookingRuleInfo  implements Serializable{

		public String Description;
		public String TypeCode;
		/*
		 * NeedNationality、务必提供客人国籍 
		 * RejectCheckinTime、几点到几点酒店不接受预订 , 此处校验的是下单时的预订时间 
		 * PerRoomPerName、您预订了N间房，请您提供不少于N的入住客人姓名 前台判断
		 * ForeignerNeedEnName、此酒店要求外宾务必留英文拼写  后台展示
		 * NeedPhoneNo、务必提供客人手机号(请加在联系人结点Contact上) 后台展示
		 */
	}

	public static class RatePlanInfo  implements Serializable{

		public String RoomName; // 房型名称
		public RoomDesction desction;
//		public String image; //
		public List<BookingRuleInfo> BookingRules = new ArrayList<HotelPrice.BookingRuleInfo>();//预订规则

		public String RoomTypeId; // 房型id
		public String AverageRate; // 单价
		public String TotalRate; // 总价
		public String Bonus; // 返现
		public String TotalBonus; // 总返现
		public String PaymentType; // Prepay预付
		public String CustomerType; // 宾客类型
		public String RateId; // 产品编号
		public String nrpname; //
		public String RateName; // 产品名称
		public String Status; // 状态 false--不可销售
		public String BreakFast; // 早餐
		public String MinBooking; // 最小预订间数
		public String MaxBooking; // 最大预订间数
		public String GuaranteeRuleIds; // 担保id（有值则需要担保）
		public List<GuaranteeRuleInfo> GuaranteeRules = new ArrayList<HotelPrice.GuaranteeRuleInfo>(); // 担保规则
		public String PrepayRuleIds; // 预付id
		public List<PrepayRuleInfo> PrepayRules = new ArrayList<HotelPrice.PrepayRuleInfo>(); // 预付规则
	}

	// 担保规则
	public static class GuaranteeRuleInfo  implements Serializable{

		public String Amount; // 房间数
		public String Description;
		public String StartTime; // 到店时间
		public String EndTime; //
		public String StartDate;
		public String EndDate;
		public String GuaranteeType; // 担保金类型 FirstNightCost为首晚房费担保
										// FullNightCost为全额房费担保
		public String IsAmountGuarantee; // 房间担保
		public String IsTimeGuarantee; // 到店时间担保
		public String WeekSet;//周有效天数， 一般为周一到周日都有效， 判断日期符合日期段同时也要满足周设置的有效  周一对应为1，周二对应为2， 依次类推;逗号分隔
		public String DateType;
	}

	//预付规则
	public static class PrepayRuleInfo implements Serializable{
		public String Description;
	}
	
	public List<RoomInfo> mRoomInfos = new ArrayList<HotelPrice.RoomInfo>();
}
